package sort

import "Code/utils"

// ShellSort 希尔排序
func ShellSort(arr []int) []int {
	for gap := len(arr) / 2; gap >= 1; gap /= 2 {
		for i := gap; i < len(arr); i++ {
			for j := i; j >= gap; j -= gap {
				if arr[j] > arr[j-gap] {
					utils.ExchangeIntArr(arr, j, j-gap)
				} else {
					break
				}
			}
		}
	}

	return arr
}
